E155 Labs - Microcontrollers & FPGA Design

Harvey Mudd College | Technical Documentation & Project Showcase

E155 Labs: Microcontrollers & FPGA Design

Documentation of my journey through E155: Microcontrollers and FPGA Design at Harvey Mudd College, mastering embedded systems, digital design, and hardware-software integration.

Progress: 2/7 labs completed (29%) | Current: Interrupts and Timers | Next: Memory-Mapped I/O

Lab Portfolio

Completed

Lab 1: FPGA and MCU Setup

Initial setup and configuration of the development environment, including FPGA programming and microcontroller initialization.

Completed

Lab 2: Assembly Language Programming

Deep dive into low-level programming with assembly language, implementing core algorithms and data manipulation techniques directly on the microcontroller.

In Progress

Lab 3: Interrupts and Timers

Exploring real-time programming concepts through interrupt-driven systems and timer-based operations.

Pending

Lab 4: Memory-Mapped I/O

Implementation of memory-mapped input/output operations, enabling direct hardware control through memory addressing.

Pending

Lab 5: Analog-to-Digital Conversion

Working with ADC peripherals to interface with analog sensors and signals, covering signal conditioning and sampling theory.

Pending

Lab 6: Pulse Width Modulation

Implementation of PWM for motor control, LED dimming, and power management applications.

Pending

Lab 7: Serial Communication

Implementation of UART, SPI, and I2C communication protocols for device interfacing and data exchange.

Skills Developed

Hardware: FPGA programming, microcontroller architecture, digital circuit design, hardware debugging

Software: Assembly language, C programming for embedded systems, interrupt-driven programming, real-time system design

Tools: Quartus Prime, ARM Cortex-M development tools, oscilloscopes, logic analyzers, Git